package com.fsh.anime.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fsh.anime.model.dtos.ArticleDto;
import com.fsh.anime.model.dtos.PageArticleDto;
import com.fsh.anime.model.pojos.Article;
import com.fsh.anime.model.vos.Result;
import org.springframework.web.multipart.MultipartFile;

public interface ArticleService extends IService<Article> {
    /**
     * @param dto
     * @return {@link Result}
     * 发布文章
     */
    Result addArticle(ArticleDto dto);

    /**
     * @param dto
     * @return {@link Result}
     * 根据分页参数获取文章列表。特别注意，获取当前登录用户的文章。
     */
    Result getMyArticleList(PageArticleDto dto);

    /**
     * @param file
     * @return {@link String}
     * 上传文章 封面 的图片
     */
    String uploadImg(MultipartFile file);

    /**
     * @param dto
     * @return {@link Result}
     * 根据分页参数获取广场文章列表。
     */
    Result getSquareArticleList(PageArticleDto dto);

    /**
     * 获取一篇文章
     *
     * @param id 编号
     * @return {@link Result}
     */
    Result getOneArticle(Long id);

    /**
     * 文章点赞
     *
     * @param articleId 文章编号
     * @param likesUp   点赞标识
     * @return {@link Result}
     */
    Result likeArticle(String articleId, Integer likesUp);

    /**
     * 收藏文章
     *
     * @param articleId 文章编号
     * @param collectUp 收藏行为
     * @return {@link Result}
     */
    Result collectArticle(Long articleId, Integer collectUp);
}
